This invention relates generally to slot readers for optical bar codes and in particular to a slot reader adapted for reading bar codes on laminated plastic cards and badges. The digital bar code slot reader is a highy effective alternative to key board data entry. Bar code scanning is faster and more accurate than key entry and provides far greater throughput. In addition, bar code scanning typically has a higher first read rate and greater data accuracy than optical character recognition. When compared to magnetic strip encoding, bar code offers significant advantages in flexibility of media, symbol placement and immunity to electromagnetic fields.
However, several problems arise with digital bar code slot readers. One problem is caused by plastic laminations on the cards or badges which are scanned through the slot reader. The plastic lamination can cause extra reflections and light piping which reduce the contrast and distort the shape of the reflectance waveform from the bar code. This shape change can cause the scanner not to read the bar code. Another problem arises because the card or badge is manually pulled through the slot reader. The variations in pull speed cause scan rate variations up to several orders of magnitude. Again, these variations can cause misreading of the bar code.
Past efforts to cope with these problems have not been entirely successful. The problems encountered in digitizing a bar code read from a laminated card or badge can be more easily understood by referring to FIG. 6 which illustrates a reflectance signal waveform from a typical bar code scan of a laminated badge or card. The scan begins at the left end of the figure and moves towards the right end. At the start of the scan there is a smooth high voltage plateau which indicates the reflectance from white area of the card. As the scan moves close to the bar code area, the reflectance and voltage level begin to drop off. Next, the scan moves into the bar code producing a series of low voltage valleys corresponding to the black bars of the oar code and high voltage peaks corresponding to the white spaces between the bars. It can be seen from the waveform that the height of the peaks is significantly lower than the initial reflectance plateau, due to the distortion and light piping effects.
In order to process the bar code information with digital circuitry, the analog scan signal must be digitized, the varying peaks and valleys must be converted into digital pulses of uniform amplitude, and pulse widths that represent the widths of the bars and spaces. One way to determine the transition from high reflectance white spaces to low reflectance black bars is to set a switching threshold at a fixed voltage level between the white reflectance level 101 and the black reflectance level 102, as illustrated by tne dashed line 103 in FIG. 6. While this method may be adapted for reading bar codes on a particular medium, it does not have the flexibility to read bar codes on a variety of media. As FIG. 6 shows, if the threshold is set at a level appropriate for one reflectance level, e.g., line 103, it does not work for bar codes on laminated media where the the peak levels of reflectance change. If the switching threshold is set low enough to suit the laminate signal waveform, it will not work properly with the paper waveform.
A second method for digitizing bar code reflectance signals attempts to compensate for changing peak reflectance levels by using peak detectors and an adaptive threshold level. The operation of this method is illustrated in the broken line 105 in FIG. 6. A peak detector senses the level of the white reflectance peaks and adjusts the switching threshold to a fraction, for example one-half, of the difference between the high voltage peaks and the low voltage valleys. This method works effectively for paper bar code tags with a wide variety of reflectance and contrast. The difficulty with this method is its response rate. If the response rate is set fast enough to handle very high speed scans, during a low speed scan the peak level is constantly adjusted before the peaks can register. If a compromise response rate is adopted, the first several bars in the bar code can be missed before the threshold adapts to the proper peak level. This difficulty is particularly apparent in digitizing bar codes on laminated media, as shown by the example in FIG. 6.
A third method, commonly referred to as a delta detector, does not use a threshold for switching but switches on any change of signal level greater than a certain amount either up or down. Although this method performs fairly well at detecting the peaks and valleys of a bar code in a laminated card, it also has difficulties. In particular, the roll-off at the beginning of the bar code causes an extreme widening of the first bar. In addition, choosing the magnitude of delta for switching makes it difficult to adapt this type of detector for both paper and laminate, as well as to both high and low contrast bar codes. Finally, this method is not particularly accurate in determining edge location.
Another method for digitizing bar code reflectance signals, described in U.S. Pat. No. 4,000,397, determines transitions by detecting zero crossings of the second derivitive of the reflectance signal, at selected gating times. The gating times occur when the first derivitive exceeds a threshold based on the peak level of the reflectance signal. This method works for a reader with a fairly constant scan speed, such as a noncontact moving beam scanner, but has difficulties when the scan speed varies significantly as it does with a slot reader. At slow scan speeds, the amplitude of the first derivitive can become lower than the threshold level and the gating signal will not trigger properly.
Yet another method uses a high pass filter on the waveform signal before performing bar code digitizing. The frequency range of the bar code data is in the pass band of the filter, but the roll-off is below the pass band. This helps to eliminate the spurious roll-off signal but limits the low speed scan sensitivity, thus reducing the effective range of scan speeds that the slot reader can handle.
According to the invention, a digital bar code slot reader provides low first bar error rates and a wide scan speed range for bar codes on laminated badges and tags, and is also capable of reading bar codes on paper. The reflectance waveform from the bar code is differentiated in order to find the regions of high slope. The differentiated signal is peak detected to find the amplitude of the slope occurring at the initial card edge. This peak detected value is used to generate thresholds to be compared to the differentiated reflectance signal during the rest of the scan. When the slope of the reflectance signal is above the positive threshold or below the negative threshold, a switching signal is produced.
In the past, although differentiation has seemed a promising method for producing a digitized output for a bar code scanner, the large variations in peak amplitudes of the differentiated signals caused by variations in scan speed prevented an effective solution. According to the invention, this problem can be overcome by using a differential amplifier which compensates for the low peak values from slowly scanned bar codes and by using a peak detector with a relatively long time constant to set a threshold voltage for the scan proportional to the peak generated when the edge of the card or badge crosses the scanning optics photodetector.
At low scan speeds, the amplitude of the differentiator output is much lower than at high scan speeds. To compensate for this, one of the amplifiers in the circuit produces a higher gain at low frequencies. This reader works over a wide scan speed range (from 4-150 inches per second for 7.5 mil resolution), a wide range of contrasts (33% to 100%), and accurately preserves the width of bars and spaces, including the first bar, even with waveforms in which the narrow elements do not have full peak to peak signal swing.